package com.company;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main3 {

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        // 午餐, <Yi, Xmin>
        Map<Integer, Integer> launchs = new HashMap<>();
        // 晚餐, <Yj, Xmin>
        Map<Integer, Integer> sumer = new HashMap<>();

        int n = sc.nextInt();
        int m = sc.nextInt();
        int t = sc.nextInt();

        if (t <= 0 ||
                (m <= 0 && n<= 0) ) {
            System.out.printf("%d", 0);
            return;
        }

        for (int i=0; i<n; ++i){
            int xi = sc.nextInt();
            int yi = sc.nextInt();
            if (launchs.containsKey(yi)){
                if (xi < launchs.get(yi)){
                    launchs.put(yi, xi);
                }
            } else {
                launchs.put(yi, xi);
            }
        }

        for (int i=0; i<m; ++i){
            int xi = sc.nextInt();
            int yi = sc.nextInt();
            if (sumer.containsKey(yi)){
                if (xi < launchs.get(yi)){
                    sumer.put(yi, xi);
                }
            } else {
                sumer.put(yi, xi);
            }
        }

        int minx = Integer.MAX_VALUE;
        int sumy = 0;
        // 只吃一顿...
        // 午餐
        for (Map.Entry<Integer, Integer> entry: launchs.entrySet()){
            if (entry.getKey() >= t) {
                if (entry.getValue() < minx){
                    sumy = entry.getKey();
                    minx = entry.getValue();
                }
            }
        }
        // 晚餐
        for (Map.Entry<Integer, Integer> entry: sumer.entrySet()){
            if (entry.getKey() >= t) {
                if (entry.getValue() < minx){
                    sumy = entry.getKey();
                    minx = entry.getValue();
                }
            }
        }

        // 吃两顿
        // 遍历午餐套餐, 看看晚餐有没有合适的
        for (Map.Entry<Integer,Integer> e1: launchs.entrySet()){
            if (e1.getKey() >= t) continue;;
            int leastY = t - e1.getKey();
            for (Map.Entry<Integer, Integer> e2: sumer.entrySet()){
                if (e2.getKey() >= leastY){
                    int sumx = e1.getValue() + e2.getValue();
                    if (sumx < minx) minx = sumx;
                }
            }
        }

        minx = minx == Integer.MAX_VALUE ? -1 : minx;
        System.out.printf("%d", minx);
    }

}
